// 定义一个类 class 关键字
// class 类名 {}
class A { // 类的开始
	// 权限: public ,private, protected
	// 权限 名字: 类型 = 默认值;
	// public: 类的外部可以使用:  外面的代码，
	// private: 只能在类的内部
	// protected: 类的内部使用，被继承了，子类是可以使用的;
	// 不写权限，Java, C++, private, TypeScript, 默认是public;
	// 
	private isDebug: boolean = false;
	private aa: number = 0;
	
	constructor() {
		console.log("constructor");
		this.aa = 100; // 
	}
	
	// 权限 函数名字(参数名字: 参数类型, ...): 返回值类型(void) {}
	public foo(lhs: number, rhs: number): number {
		// this --->类的实例
		return lhs + rhs;
	}
	
} // 类的结束

var aa: A = new A(); // js 相似  new 一个实例的时候---》掉一下 constructor

console.log(A); // A ---> js 运行 就是函数;
console.log(a); // 类的实例，就会包含这个数据成员;
console.log(aa.foo(3, 4)) // 7;

console.log(A.prototype.foo);
// console.log(a.__proto__.foo);
console.log((aa as any).__proto__.foo); // tsc ---> ts --->js;







